#ifndef __LINKEDLIST_H___
#define __LINKEDLIST_H___

#include "ALGraph.h"
#include "my_constants.h"

Status InitList(LinkList &L);
Status DestroyList(LinkList &L);
Status ListEmpty(LinkList L);
int ListLength(LinkList L);
Status GetElem(LinkList L, int i, ElemType &e);
int LocateElem(LinkList L, ElemType e, Status (*compare)(ElemType, ElemType));
Status ListInsert(LinkList &L, int i, ElemType e);
Status ListDelete(LinkList &L, int i, ElemType &e);
Status ListTraverse(LinkList L, Status (*Visit)(ElemType));
LinkList Point(LinkList L, ElemType e, Status (*equal)(ElemType, ElemType),
               LinkList &p);
Status DeleteElem(LinkList &L, ElemType &e,
                  Status (*equal)(ElemType, ElemType));

#endif